/*
 * Candidato.h
 *
 *  Created on: Sep 12, 2011
 *      Author: marcos
 */

#ifndef CANDIDATO_H_
#define CANDIDATO_H_

#include <iostream>
#include <fstream>
#include <sstream>
#include <stdlib.h>
using std::string;

#include "Cargo.h"
#include "Votante.h"
#include "Lista.h"
#include <stdio.h>

using namespace std;

//class Lista; Hace falta?

class Candidato {
private:
	int id;
	Votante* votante;
	Cargo* cargo;
	Lista* lista;
public:
	Candidato();
	virtual ~Candidato();
    Cargo *getCargo() const;
    int getId() const;
    Votante *getVotante() const;
    void setCargo(Cargo *cargo);
    void setId(int id);
    void setVotante(Votante *votante);
    Lista *getLista() const;
    void setLista(Lista *lista);
    static Candidato* create(int id, Votante* votante, Lista* lista, Cargo* cargo);

    static Candidato* create(int id);

    //Serialize and Unserialize methods
    static Candidato* toObject(iostream *stream);
    void toData(iostream*);

};

#endif /* CANDIDATO_H_ */
